package com.moli.iov.down.enums.command.upgrade;

/**
 * <p>
 *  升级状态
 * </p>
 *
 * @author: zql
 * @Date: 2019/4/8 14:51
 */
public enum UpgradeStatusEnum {

    /**
     *  表示未开始下载
     */
    NO_DOWNLOAD_STARTED((byte)0x00, "表示未开始下载"),

    /**
     * 表示下载成功完成
     */
    DOWNNLOAD_SUCCESSFUL((byte)0x01, "表示下载成功完成"),

    /**
     * 下载失败
     */
    DOWNNLOAD_FAILED((byte)0x02, "下载失败"),

    /**
     * 不需要下载
     */
    NO_DOWNLOAD_REQUIRED((byte)0x03, "不需要下载"),

    /**
     * 文件不存在
     */
    FILE_DOES_NOT_EXIST((byte)0x04, "文件不存在"),

    /**
     * 文件错误
     */
    FILE_ERROR((byte)0x05, "文件错误"),

    /**
     * 命令响应错
     */
    COMAND_RESPONSE_ERROR((byte)0x06, "命令响应错误"),

    /**
     * 用户名错误
     */
    USERNAME_NAME_ERROR((byte)0x07, "用户名错误"),

    /**
     * 密码错误
     */
    PWD_ERROR((byte)0x08, "密码错误"),

    /**
     * 目录错误
     */
    DIRECTORY_ERROR((byte)0x09, "目录错误"),

    /**
     * 命令端口出错
     */
    COMMAND_PORT_ERROR((byte)0x0A, "命令端口出错"),

    /**
     * 数据端口出错
     */
    DATA_PORT_ERROR((byte)0x0B, "数据端口出错"),

    /**
     * 设备类型错误
     */
    DEVICE_TYPE_ERROR((byte)0x0C, "设备类型错误"),

    /**
     * 内存不足
     */
    MEMORY_INSUFFICIENT((byte)0x0D, "内存不足"),

    /**
     * 编程错误
     */
    PROGRAMMING_ERROR((byte)0x0E, "编程错误"),

    /**
     * 文件校验错
     */
    FILE_VERIFICATION_ERROR((byte)0x0F, "文件校验错误"),

    /**
     * 系统忙无法响应
     */
    SYSTEM_IS_TOO_BUSY((byte)0x11, "系统忙无法响应"),

    /**
     * 异常中断
     */
    ABNORMAL_INTERRUPTION((byte)0x12, "异常中断"),

    /**
     * 启动下载成功， 开始下载
     */
    START_DOWNLOAD((byte)0x13, "启动下载成功， 开始下载"),

    /**
     * 启动下载失败,参数错误
     */
    DOWNLOAD_FAILED_PARAMETER_ERROR((byte)0x14, "启动下载失败,参数错误"),

    /**
     * 启动下载失败,正在 FTP 下载中
     */
    DOWNNLOAD_FAILED_FTP((byte)0x15, "启动下载失败,正在 FTP 下载中"),

    /**
     * 启动下载失败,系统忙
     */
    DOWNNLOAD_FAILED_SYSTEM_BUSY((byte)0x16, "启动下载失败,系统忙"),

    /**
     * 启动下载失败,用户名/密码错误
     */
    DOWNNLOAD_FAILED_PWD_ERROR((byte)0x17, "启动下载失败,用户名/密码错误"),

    /**
     * 启动下载失败,其他错误
     */
    DOWNNLOAD_FAILED_OTHER_ERROR((byte)0x18, "启动下载失败,其他错误"),

    /**
     * 升级成
     */
    UPADATE_SUCCESSED((byte)0x19, "升级成功"),

    /**
     * 等待用户确认是否升级
     */
    WAITING_FOR_CONFIRM((byte)0x1A, "等待用户确认是否升级"),

    /**
     * 用户拒绝升级
     */
    REFUSE_UPGRADE((byte)0x1B, "用户拒绝升级"),

    /**
     * 准备升级中
     */
    READY_UPGRADE((byte)0x1C, "准备升级中"),

    /**
     * 系统资源不足， 无法启动升级
     */
    LACK_OF_RESOURCES((byte)0x1D, "系统资源不足， 无法启动升级"),

    /**
     * 升级包检查失
     */
    CHECK_FAILED((byte)0x1E, "升级包检查失败"),

    /**
     * 驱动文件升级中
     */
    DRIVER_FILE_UPGRADE((byte)0x1F, "驱动文件升级中"),

    /**
     * 应用文件升级中
     */
    APPLICATION_FILE_UPGRADE((byte)0x20, "应用文件升级中");

    private byte flag;

    private String msg;

    UpgradeStatusEnum(byte flag, String msg){
        this.flag = flag;
        this.msg = msg;
    }

    public byte getFlag() {
        return flag;
    }

    public static String getMsg(byte flag) {
        for(UpgradeStatusEnum e : UpgradeStatusEnum.values()){
            if(e.getFlag() == flag){
                return e.msg;
            }
        }
        return "未定义";
    }
}
